package com.atguigu.dao;

import com.atguigu.bean.Teacher;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 伟哥
 * @date 2021-06-13 14:50
 */
public interface TeacherDao {

    Teacher getTeacherById(Integer id);

    /**
     * 按条件查询：
     *      传入Teacher对象
     *      Teacher对象有id，按id查询
     *      Teacher对象有name，按name查 等等
     * @param teacher 传入的teacher对象
     * @return 符合条件的List列表
     */
    List<Teacher> getTeacherByCondition(Teacher teacher);

    /**
     * 按条件查询：
     *      传入List<Integer> ids老师们的集合
     * SQL语句：
     *     SELECT * FROM t_teacher WHERE id IN (1,2,3,4,5)
     * @param ids 老师id的集合
     * @return 返回，符合条件的老师
     */
    List<Teacher> getTeacherByIdIn(@Param("ids") List<Integer> ids);

    /**
     * 使用<choose>标签：分支选择（就是if_else if_else，条件判断只会生效一个）
     * @param teacher 传入已经设置了属性，当做条件判断的teacher对象
     * @return 符合条件的List列表
     */
    List<Teacher> getTeacherByConditionChoose(Teacher teacher);

    /**
     * 使用<set>标签，去除SQL语句中的","逗号
     * @param teacher 传入已经设置了属性，当做条件判断的teacher对象
     * @return 修改成功数据库的行数
     */
    int updateTeacher(Teacher teacher);
}
